﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using DynamicAuditor.DTOs;
using DynamicAuditor.DALAuditor;

namespace Negocio
{

    /// <summary>
    /// Summary description for WsNegocio
    /// </summary>
    [WebService(Namespace = "DynamicAuditor")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class WsSeguridad : System.Web.Services.WebService
    {

        #region SEGURIDAD
        DynamicAuditor.DALAuditor.clsUsuarioMg seguridad = new clsUsuarioMg();


        [WebMethod]
        public dtoUsuario LoginApp(dtoUsuario user)
        {
            dtoUsuario usr = new dtoUsuario();
            string usuario = user.Usuario;
            string password = user.Password;

            usr = null;

            DynamicAuditor.DALAuditor.clsUsuarioMg dalusuario = new clsUsuarioMg();

            try
            {
                usr = dalusuario.ObtenerUsuarioporNombreUsuarioPwd(usuario, password);
            }
            catch (Exception ex)
            {

                throw new Exception("No fue posible encontrar la informacion del usuario." + ex.Message);
            }




            return usr;

        }

        [WebMethod]
        public List<dtoUsuario> getTodosUsuarios()
        {


            List<dtoUsuario> listaUsuarios = new List<dtoUsuario>();

            try
            {
                DynamicAuditor.DALAuditor.clsUsuarioMg dalListaUsuarios = new clsUsuarioMg();
                listaUsuarios = dalListaUsuarios.ObtenerUsuariosActivos();



            }
            catch (Exception ex)
            {
                throw new Exception("Error al obtener la lista de usuarios");

            }



            return listaUsuarios;
        }


        [WebMethod]
        public int CrearUsuario(dtoUsuario usuario)
        {
            int resp =0;

            DynamicAuditor.DALAuditor.clsUsuarioMg user = new clsUsuarioMg();

            try
            {
                resp = user.CrearUsuario(usuario);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo crear el usuario.");
            }

            return resp = 0;
        }

        [WebMethod]
        public int ActualizarUsuario(dtoUsuario usuario)
        {
            int resp = 0;

            DynamicAuditor.DALAuditor.clsUsuarioMg user = new clsUsuarioMg();

            try
            {
                resp = user.UpdateUsuario(usuario);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo actualizar la informacion.");
            }

            return resp = 0;
        }


        [WebMethod]
        public dtoUsuario ObtenerUsuarioxId(int _idusuario)
        {
            dtoUsuario usuario = new dtoUsuario();

            try
            {
                usuario = seguridad.ObtenerUsuarioporId(_idusuario);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo obtener la informacion.");
            }

            return usuario;
        }

        [WebMethod]
        public dtoUsuario ObtenerUsuarioporNombreUsuario(string strusuario)
        {
            dtoUsuario usuario = new dtoUsuario();

            try
            {
                usuario = seguridad.ObtenerUsuarioporNombreUsuario(strusuario);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo obtener la informacion.");
            }

            return usuario;

        }

        [WebMethod]
        public int EliminarUsuario(int _idusuario)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsUsuarioMg usr = new clsUsuarioMg();

            try
            {
                resp = usr.DeleteUsuario(_idusuario);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo eliminar el usuario.");
            }

            return resp;
        }

        #endregion

        #region PERFILES

        [WebMethod]
        public List<dtoPerfiles> ObtenerTodosPerfiles()
        {
            List<dtoPerfiles> Perfiles = new List<dtoPerfiles>();

            try
            {
                DynamicAuditor.DALAuditor.clsPerfilMg dalperfil = new clsPerfilMg();
                Perfiles = dalperfil.ObtenerPerfilesActivos();
            }
            catch (Exception ex)
            {
                throw new Exception("Error al obtener la lista de perfiles." + ex.Message);

            }

            return Perfiles;
        }

        [WebMethod]
        public int CrearPerfil(dtoPerfiles perfil)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsPerfilMg dalperfil = new clsPerfilMg();

            try
            {
                resp = dalperfil.CrearPerfil(perfil);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo crear el perfil." + ex.Message);
            }

            return resp;
        }

        [WebMethod]
        public int EliminarPerfil(int idperfil)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsPerfilMg dalperfil = new clsPerfilMg();
            try
            {
                resp = dalperfil.DeletePerfil(idperfil);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo eliminar el perfil." + ex.Message);
            }

            return resp;
        }

        [WebMethod]
        public int UpdatePerfil(dtoPerfiles perfil)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsPerfilMg dalperfil = new clsPerfilMg();

            try
            {
                resp = dalperfil.UpdatePerfil(perfil);

            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo actualizar el perfil." + ex.Message);
            }

            return resp;
        }

        [WebMethod]
        public dtoPerfiles ObtenerPerfilxId(int idperfil)
        {
            dtoPerfiles perfil = new dtoPerfiles();
            DynamicAuditor.DALAuditor.clsPerfilMg dalperfil = new clsPerfilMg();
            try
            {
                perfil = dalperfil.ObtenerPerfilporId(idperfil);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo obtener la informacion para el perfil solicitado." + ex.Message);
            }

            return perfil;
        }

        #endregion

        #region MODULOS
        [WebMethod]
        public List<dtoModulo> ObtenerTodosModulos()
        {
            List<dtoModulo> Modulos = new List<dtoModulo>();

            try
            {
                DynamicAuditor.DALAuditor.clsModuloMg dalmodulo = new clsModuloMg();
                Modulos = dalmodulo.ObtenerModulosActivos();
            }
            catch (Exception ex)
            {
                throw new Exception("Error al obtener la lista de modulos." + ex.Message);

            }

            return Modulos;
        }

        [WebMethod]
        public int CrearModulo(dtoModulo modulo)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsModuloMg dalmodulo = new clsModuloMg();

            try
            {
                resp = dalmodulo.CrearModulo(modulo);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo crear el modulo." + ex.Message);
            }

            return resp;
        }

        [WebMethod]
        public int EliminarModulo(int idmodulo)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsModuloMg dalmodulo = new clsModuloMg();
            try
            {
                resp = dalmodulo.DeleteModulo(idmodulo);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo eliminar el modulo." + ex.Message);
            }

            return resp;
        }

        [WebMethod]
        public int UpdateModulo(dtoModulo modulo)
        {
            int resp = 0;
            DynamicAuditor.DALAuditor.clsModuloMg dalperfil = new clsModuloMg();

            try
            {
                resp = dalperfil.UpdateModulo(modulo);

            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo actualizar el modulo." + ex.Message);
            }

            return resp;
        }

        [WebMethod]
        public dtoModulo ObtenerModuloxId(int idmodulo)
        {
            dtoModulo modulo = new dtoModulo();
            DynamicAuditor.DALAuditor.clsModuloMg dalmodulo = new clsModuloMg();
            try
            {
                modulo = dalmodulo.ObtenerModuloporId(idmodulo);
            }
            catch (Exception ex)
            {
                throw new Exception("No se pudo obtener la informacion para el modulo solicitado." + ex.Message);
            }

            return modulo;
        }




        #endregion





    }
}
